package capa_interfaz;

import capa_dominio.*;
import miCartera.MiCartera;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Item;
import javax.microedition.lcdui.StringItem;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Esperanza
 */
public class FBorrarGasto implements CommandListener{
    private Form formuborrar;
    private StringItem pregunta;
    private FEditarGasto formureferencia; //El formulario principal que le llamó
    private Command regresar, aceptar;
    private MiCartera midlet;
    private ControladorInterfaz cntrInterfaz;
    
    public FBorrarGasto (FEditarGasto formu, MiCartera mimidlet, ControladorInterfaz cntrInterf){
        this.formureferencia=formu;
        this.midlet=mimidlet;
        this.cntrInterfaz=cntrInterf;
        
        //Creamos formulario de borrar
        formuborrar=new Form ("Borrar gasto de MiCartera");
        pregunta= new StringItem("", "¿Está seguro de borrar el gasto seleccionado?"+"\n"+formureferencia.cadenafecha+"\n"+formureferencia.cadenacategoria+"\n"+formureferencia.cadenacantidad+" "+formureferencia.cadenamoneda, Item.PLAIN);
        regresar=new Command("Atras",Command.BACK,1);
        aceptar=new Command("Borrar", Command.OK,1);
        
        formuborrar.append(pregunta);
        formuborrar.addCommand(aceptar);
        formuborrar.addCommand(regresar);
        formuborrar.setCommandListener(this);
        
         //Establecemos como pantalla
        midlet.pantalla.setCurrent(formuborrar);
        //Podríamos haber pasado la referencia al Midlet principal como parámetro en el método de creación
        //y no tener tantas llamadas anidadas
        
    }

    public void commandAction(Command c, Displayable d) {
        if (c==regresar){
            //Vuelve a la pantalla inicial
            midlet.pantalla.setCurrent(midlet.pantallainicial);
        }else {//si se da a aceptar          
            //Borra del RecordStore de gastos el gasto pasado por el indice
           cntrInterfaz.borrarGastoRecordStore(formureferencia.posicionrs);
           //Informa con un alert el borrado del gasto
           this.avisoBorrado();         
           //Actualizamos Gastos de MiCartera
            midlet.actualizaGastos();
           
        }
    }

    public void avisoBorrado(){
        Alert alerta;

        alerta=new Alert("Aviso", "Cangrulations! Has borrado un gasto", null, AlertType.INFO);
        alerta.setTimeout(Alert.FOREVER);//Alerta modal
        //Despues establecemos el form de pantallainicial
        midlet.pantalla.setCurrent(alerta, midlet.pantallainicial);
    }
}
